package com.ruyuan.commodity.common.mamager;

import com.ruyuan.commodity.model.goodssearch.GoodsSearchDTO;
import com.ruyuan.commodity.model.goodssearch.GoodsSearchLine;
import com.ruyuan.commodity.model.goodssearch.GoodsWords;
import com.ruyuan.commodity.open.api.model.common.WebPage;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * 商品搜索
 */
public interface GoodsSearchManager {

    /**
     * 搜索
     *
     * @param goodsSearch 搜索条件
     * @return 商品分页
     */
    WebPage<GoodsSearchLine> search(GoodsSearchDTO goodsSearch);

    /**
     * 获取筛选器
     *
     * @param goodsSearch 搜索条件
     * @return Map
     */
    Map<String, Object> getSelector(GoodsSearchDTO goodsSearch);

    /**
     * 通过关键字获取商品分词索引
     *
     * @param keyword 关键字
     * @return
     */
    List<GoodsWords> getGoodsWords(String keyword);

    /**
     * 获取'为你推荐'商品列表
     * @param goodsSearch 查询参数
     * @return 分页数据
     */
    WebPage<GoodsSearchLine> recommendGoodsList(GoodsSearchDTO goodsSearch);

    void searchGoods(GoodsSearchDTO goodsSearch) throws IOException;

}
